package com.itheima.d5_tcp2;


import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;

/*
   目标：完成TCP通信快速入门-服务端开发：实现1发1收。
 */
public class Server {
    public static void main(String[] args) throws Exception {
        // 1、创建ServerSocket的对象，同时为服务端注册端口。
        ServerSocket socket = new ServerSocket(8080);

        // 2、使用serverSocket对象，调用一个accept方法，等待客户端的连接请求
        Socket accept = socket.accept();

        // 3、从socket通信管道中得到一个字节输入流。
        InputStream inputStream = accept.getInputStream();
        //转换流，将字节流转换为字符流
        InputStreamReader isr = new InputStreamReader(inputStream);

        // 4、把原始的字节输入流包装成高效的输入流
        BufferedReader br = new BufferedReader(isr);
        while (true) {
            // 5、使用数据输入流读取客户端发送过来的消息
            String s = br.readLine();

            //客户端关闭后 readLine方法就不再阻塞，会一直读取到 null
            if(s == null){
                break;
            }else {
                System.out.print(accept.getInetAddress().getHostAddress() + ": ");
                System.out.println(s);
            }
        }

        // 6、释放资源
        br.close();
        accept.close();
    }
}













